History Of Software
   HOME

TheInfoList



OR:

Software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
is a set of programmed instructions stored in the memory of stored-program digital
computer A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
s for execution by the processor. Software is a recent development in human history, and it is fundamental to the
Information Age The Information Age (also known as the Computer Age, Digital Age, Silicon Age, or New Media Age) is a historical period that began in the mid-20th century. It is characterized by a rapid shift from traditional industries, as established during ...
.
Ada Lovelace Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the A ...
's programs for
Charles Babbage Charles Babbage (; 26 December 1791 – 18 October 1871) was an English polymath. A mathematician, philosopher, inventor and mechanical engineer, Babbage originated the concept of a digital programmable computer. Babbage is considered ...
's
Analytical Engine The Analytical Engine was a proposed mechanical general-purpose computer designed by English mathematician and computer pioneer Charles Babbage. It was first described in 1837 as the successor to Babbage's difference engine, which was a des ...
in the 19th century is often considered the founder of the discipline, though the mathematician's efforts remained theoretical only, as the technology of Lovelace and Babbage's day proved insufficient to build his computer.
Alan Turing Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician, computer scientist, logician, cryptanalyst, philosopher, and theoretical biologist. Turing was highly influential in the development of theoretical com ...
is credited with being the first person to come up with a theory for software in 1935, which led to the two academic fields of
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
and
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
. The first generation of software for early stored-program digital computers in the late 1940s had its instructions written directly in
binary code A binary code represents text, computer processor instructions, or any other data using a two-symbol system. The two-symbol system used is often "0" and "1" from the binary number system. The binary code assigns a pattern of binary digits, also ...
, generally written for
mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
s. Later, the development of modern
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s alongside the advancement of the home computer would greatly widen the scope and breadth of available software, beginning with
assembly language In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
, and continuing on through
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declar ...
and
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pr ...
paradigms.


Before stored-program digital computers


Origins of computer science

Computing as a concept goes back to ancient times, with devices such as the
abacus The abacus (''plural'' abaci or abacuses), also called a counting frame, is a calculating tool which has been used since ancient times. It was used in the ancient Near East, Europe, China, and Russia, centuries before the adoption of the Hin ...
, the
Antikythera mechanism The Antikythera mechanism ( ) is an Ancient Greece, Ancient Greek hand-powered orrery, described as the oldest example of an analogue computer used to predict astronomy, astronomical positions and eclipses decades in advance. It could also be ...
, Astrolabes, Mechanical
Astronomical clocks An astronomical clock, horologium, or orloj is a clock with special mechanisms and dials to display astronomical information, such as the relative positions of the Sun, Moon, zodiacal constellations, and sometimes major planets. Definition ...
and Mechanical Calculators. The
Antikythera mechanism The Antikythera mechanism ( ) is an Ancient Greece, Ancient Greek hand-powered orrery, described as the oldest example of an analogue computer used to predict astronomy, astronomical positions and eclipses decades in advance. It could also be ...
is an example for a highly complex ancient mechanical Astronomical device. However, these devices were pure hardware and had no software - their computing powers were directly tied to their specific form and engineering. Software requires the concept of a general-purpose processor - what is now described as a
Turing machine A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
- as well as
computer memory In computing, memory is a device or system that is used to store information for immediate use in a computer or related computer hardware and digital electronic devices. The term ''memory'' is often synonymous with the term ''primary storage ...
in which reusable sets of routines and mathematical functions comprising programs can be stored, started, and stopped individually, and only appears recently in human history. The first known computer
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
was written by
Ada Lovelace Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the A ...
in the 19th century for the
Analytical Engine The Analytical Engine was a proposed mechanical general-purpose computer designed by English mathematician and computer pioneer Charles Babbage. It was first described in 1837 as the successor to Babbage's difference engine, which was a des ...
, to translate
Luigi Menabrea Luigi Federico Menabrea (4 September 1809 – 24 May 1896), later made 1st Count Menabrea and 1st Marquess of Valdora, was an Italian general, statesman and mathematician who served as the seventh prime minister of Italy from 1867 to 1869. B ...
's work on
Bernoulli numbers In mathematics, the Bernoulli numbers are a sequence of rational numbers which occur frequently in analysis. The Bernoulli numbers appear in (and can be defined by) the Taylor series expansions of the tangent and hyperbolic tangent functions, ...
for machine instruction. However, this remained theoretical only - the lesser state of
engineering Engineering is the use of scientific method, scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings. The discipline of engineering encompasses a broad rang ...
in the lifetime of these two mathematicians proved insufficient to construct the Analytical Engine. The first modern theory of software was proposed by
Alan Turing Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician, computer scientist, logician, cryptanalyst, philosopher, and theoretical biologist. Turing was highly influential in the development of theoretical com ...
in his 1935 essay ''Computable numbers with an application to the Entscheidungsproblem (decision problem)''. This eventually led to the creation of the twin academic fields of
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
and
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, which both study software and its creation. Computer science is more theoretical (Turing's essay is an example of computer science), whereas software engineering is focused on more practical concerns. However, prior to 1946, software as we now understand it programs stored in the memory of stored-program digital computers did not yet exist. The very first electronic computing devices were instead rewired in order to "reprogram" them. The
ENIAC ENIAC (; Electronic Numerical Integrator and Computer) was the first programmable, electronic, general-purpose digital computer, completed in 1945. There were other computers that had these features, but the ENIAC had all of them in one packa ...
, one of the first electronic computers, was programmed largely by women who had been previously working as
human computer The term "computer", in use from the early 17th century (the first known written reference dates from 1613), meant "one who computes": a person performing mathematical calculations, before electronic computers became commercially available. Ala ...
s. Engineers would give the programmers blueprints of the ENIAC wiring and expected them to figure out how to program the machine. The women who worked as programmers prepped the ENIAC for its first public reveal, wiring the patch panels together for the demonstrations.
Kathleen Booth Kathleen Hylda Valerie Booth ( Britten, 9 July 1922 – 29 September 2022) was a British computer scientist and mathematician who wrote the first assembly language and designed the assembler and autocode for the first computer systems at Birkbe ...
developed
Assembly Language In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
in 1950 to make it easier to program the computers she worked on at
Birkbeck College Birkbeck, University of London (formally Birkbeck College, University of London), is a public university, public research university, located in Bloomsbury, London, England, and a constituent college, member institution of the federal Universit ...
.
Grace Hopper Grace Brewster Hopper (; December 9, 1906 – January 1, 1992) was an American computer scientist, mathematician, and United States Navy Rear admiral (United States), rear admiral. One of the first programmers of the Harvard Mark I, Harvard Mar ...
worked as one of the first programmers of the Harvard Mark I. She later created a 500-page manual for the computer. Hopper is often falsely credited with coining the terms "bug" and "
debugging In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve in ...
," when she found a moth in the Mark II, causing a malfunction; however, the term was in fact already in use when she found the moth. Hopper developed the first compiler and brought her idea from working on the Mark computers to working on
UNIVAC UNIVAC (Universal Automatic Computer) was a line of electronic digital stored-program computers starting with the products of the Eckert–Mauchly Computer Corporation. Later the name was applied to a division of the Remington Rand company an ...
in the 1950s. Hopper also developed the programming language
FLOW-MATIC FLOW-MATIC, originally known as B-0 (Business Language version 0), was the first English-like data processing language. It was developed for the UNIVAC I at Remington Rand under Grace Hopper from 1955 to 1959, and helped shape the development of CO ...
to program the UNIVAC. Frances E. Holberton, also working at UNIVAC, developed a code, C-10, which let programmers use keyboard inputs and created the Sort-Merge Generator in 1951. Adele Mildred Koss and Hopper also created the precursor to a
report generator A report generator is a computer program whose purpose is to take data from a source such as a database, XML stream or a spreadsheet A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabu ...
.


Early days of computer software (1948–1979)

In his manuscript "A Mathematical Theory of Communication",
Claude Shannon Claude Elwood Shannon (April 30, 1916 – February 24, 2001) was an American people, American mathematician, electrical engineering, electrical engineer, and cryptography, cryptographer known as a "father of information theory". As a 21-year-o ...
(1916–2001) provided an outline for how binary logic could be implemented to program a computer. Subsequently, the first computer programmers used
binary code A binary code represents text, computer processor instructions, or any other data using a two-symbol system. The two-symbol system used is often "0" and "1" from the binary number system. The binary code assigns a pattern of binary digits, also ...
to instruct computers to perform various tasks. Nevertheless, the process was very arduous. Computer programmers had to provide long strings of binary code to tell the computer what kind of data it should store. Code and data had to be loaded onto computers using various tedious mechanisms, including flicking switches or punching holes at predefined positions in cards and loading these
punched cards A punched card (also punch card or punched-card) is a piece of stiff paper that holds digital data represented by the presence or absence of holes in predefined positions. Punched cards were once common in data processing applications or to d ...
into a computer. With such methods, if a mistake was made, the whole program might have to be loaded again from the beginning. The very first time a stored-program computer held a piece of software in electronic memory and executed it successfully, was 11 am 21 June 1948, at the University of Manchester, on the
Manchester Baby The Manchester Baby, also called the Small-Scale Experimental Machine (SSEM), was the first electronic stored-program computer. It was built at the University of Manchester by Frederic Calland Williams, Frederic C. Williams, Tom Kilburn, and Ge ...
computer. It was written by
Tom Kilburn Tom Kilburn (11 August 1921 – 17 January 2001) was an English mathematician and computer scientist. Over the course of a productive 30-year career, he was involved in the development of five computers of great historical significance. With ...
, and calculated the highest factor of the integer 2^18 = 262,144. Starting with a large trial divisor, it performed division of 262,144 by repeated subtraction then checked if the remainder was zero. If not, it decremented the trial divisor by one and repeated the process. Google released a tribute to the Manchester Baby, celebrating it as the "birth of software". FORTRAN was developed by a team led by
John Backus John Warner Backus (December 3, 1924 – March 17, 2007) was an American computer scientist. He directed the team that invented and implemented FORTRAN, the first widely used high-level programming language, and was the inventor of the Back ...
at IBM in the 1950s. The first compiler was released in 1957. The language proved so popular for scientific and technical computing that by 1963 all major manufacturers had implemented or announced FORTRAN for their computers. COBOL was first conceived of when Mary K. Hawes convened a meeting (which included
Grace Hopper Grace Brewster Hopper (; December 9, 1906 – January 1, 1992) was an American computer scientist, mathematician, and United States Navy Rear admiral (United States), rear admiral. One of the first programmers of the Harvard Mark I, Harvard Mar ...
) in 1959 to discuss how to create a computer language to be shared between businesses. Hopper's innovation with COBOL was developing a new symbolic way to write programming. Her programming was self-documenting. Betty Holberton helped edit the language which was submitted to the
Government Printing Office The United States Government Publishing Office (USGPO or GPO; formerly the United States Government Printing Office) is an agency of the legislative branch of the United States Federal government. The office produces and distributes information ...
in 1960. FORMAC was developed by Jean E. Sammet in the 1960s. Her book, ''Programming Languages: History and Fundamentals'' (1969), became an influential text.


Apollo Mission

The Apollo Mission to the moon depended on software to program the computers in the landing modules. The computers were programmed with a language called "Basic" (no relation with the
BASIC BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
programming language developed at Dartmouth at about the same time). The software also had an interpreter which was made up of a series of routines and an executive (like a modern-day
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
), which specified which programs to run and when. Both were designed by
Hal Laning J. Halcombe "Hal" Laning Jr. (February 14, 1920 in Kansas City, Missouri – May 29, 2012) was a Massachusetts Institute of Technology computer pioneer who in 1952 invented an alge ...
. Margaret Hamilton, who had previously been involved with software reliability issues when working on the US SAGE air defense system, was also part of the Apollo software team. Hamilton was in charge of the onboard flight software for the Apollo computers. Hamilton felt that software operations were not just part of the machine, but also intricately involved with the people who operated the software. Hamilton also coined the term "
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
" while she was working at NASA. The actual "software" for the computers in the Apollo missions was made up of wires that were threaded through magnetic cores. Where the wire went through a magnetic core, that represented a "1" and where the wire went around the core, that represented a "0." Each core stored 64 bits of information. Hamilton and others would create the software by punching holes in punch cards, which were then later processed on a
Honeywell Honeywell International Inc. is an American publicly traded, multinational conglomerate corporation headquartered in Charlotte, North Carolina. It primarily operates in four areas of business: aerospace, building technologies, performance ma ...
mainframe where the software could be simulated. When the code was "solid," then it was sent to be woven into the magnetic cores at
Raytheon Raytheon Technologies Corporation is an American multinational aerospace and defense conglomerate headquartered in Arlington, Virginia. It is one of the largest aerospace and defense manufacturers in the world by revenue and market capitaliza ...
, where women known as "Little Old Ladies" worked on the wires. The program itself was "indestructible" and could even withstand lightning strikes, which happened to
Apollo 12 Apollo 12 (November 14–24, 1969) was the sixth crewed flight in the United States Apollo program and the second to land on the Moon. It was launched on November 14, 1969, by NASA from the Kennedy Space Center, Florida. Commander Pete Conra ...
. Wiring the computers took several weeks to do, freezing software development during that time. While using the simulators to test the programming, Hamilton discovered ways that code could produce dangerous errors when human mistakes were made while using it. NASA believed that the astronauts would not make mistakes due to their training. Hamilton was not allowed to program code to prevent errors that would lead to system crash, so she annotated the code in the program documentation. Her ideas to add error-checking code was rejected as "excessive." However, exactly what Hamilton predicted would happen occurred on the
Apollo 8 Apollo 8 (December 21–27, 1968) was the first crewed spacecraft to leave low Earth orbit and the first human spaceflight to reach the Moon. The crew orbited the Moon ten times without landing, and then departed safely back to Earth. These ...
flight, when human error caused the computer to wipe out all of the navigational data.


Bundling of software with hardware and its legal issues

Later, software was sold to multiple customers by being '' bundled'' with the hardware by
original equipment manufacturer An original equipment manufacturer (OEM) is generally perceived as a company that produces non-aftermarket parts and equipment that may be marketed by another manufacturer. It is a common industry term recognized and used by many professional or ...
s (OEMs) such as
Data General Data General Corporation was one of the first minicomputer firms of the late 1960s. Three of the four founders were former employees of Digital Equipment Corporation (DEC). Their first product, 1969's Data General Nova, was a 16-bit minicomputer ...
,
Digital Equipment Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president until ...
and IBM. When a customer bought a
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
, at that time the smallest computer on the market, the computer did not come with
pre-installed software Pre-installed software (also known as bundled software) is software already installed and licensed on a computer or smartphone bought from an original equipment manufacturer (OEM).sued IBM for improper "tying" in 1969, alleging that it was an antitrust violation that customers who wanted to obtain its software had to also buy or lease its hardware in order to do so. However, the case was dropped by the US Justice Department, after many years of attrition, as it concluded it was "without merit". Data General also encountered legal problems related to bundling although in this case, it was due to a civil suit from a would-be competitor. When Data General introduced the
Data General Nova The Data General Nova is a series of 16-bit minicomputers released by the American company Data General. The Nova family was very popular in the 1970s and ultimately sold tens of thousands of units. The first model, known simply as "Nova", was ...
, a company called Digidyne wanted to use its RDOS
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
on its own hardware clone. Data General refused to license their software and claimed their "bundling rights". The US
Supreme Court A supreme court is the highest court within the hierarchy of courts in most legal jurisdictions. Other descriptions for such courts include court of last resort, apex court, and high (or final) court of appeal. Broadly speaking, the decisions of ...
set a precedent called ''Digidyne v. Data General'' in 1985 by letting a 9th circuit appeal court decision on the case stand, and Data General was eventually forced into licensing the operating system because it was ruled that restricting the license to only DG hardware was an illegal ''tying arrangement''. Even though the District Court noted that "no reasonable juror could find that within this large and dynamic market with much larger competitors", Data General "had the market power to restrain trade through an illegal tie-in arrangement", the tying of the operating system to the hardware was ruled as ''per se'' illegal on appeal. In 2008, Psystar Corporation was sued by
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
for distributing unauthorized
Macintosh clone A Macintosh clone, also known as a Clonintosh (a portmanteau of "Clone (computing), Clone" and "Macintosh"), is a computer running the Mac OS operating system that was not produced by Apple Inc. The earliest Mac clones were based on Macintosh clon ...
s with
OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
preinstalled, and countersued. One of the arguments in the countersuit - citing the Data General case - was that Apple dominates the market for OS X compatible computers by illegally tying the operating system to Apple computers. District Court Judge
William Alsup William Haskell Alsup (born June 27, 1945) is a Senior United States district judge of the United States District Court for the Northern District of California. Early life and career Born in Jackson, Mississippi, Alsup received a Bachelor of ...
rejected this argument, saying, as the District Court had ruled in the Data General case over 20 years prior, that the relevant market was not simply one operating system (Mac OS) but ''all'' PC operating systems, ''including'' Mac OS, and noting that Mac OS did not enjoy a dominant position in that broader market. Alsup's judgement also noted that the surprising Data General precedent that tying of copyrighted products was always illegal had since been "implicitly overruled" by the verdict in the
Illinois Tool Works Inc. v. Independent Ink, Inc. ''Illinois Tool Works Inc. v. Independent Ink, Inc.'', 547 U.S. 28 (2006), was a case decided by the Supreme Court of the United States involving the application of U.S. antitrust law to " tying" arrangements of patented products. The Court rul ...
case.


Packaged software (Late 1960s-present)

An industry producing independently packaged software - software that was neither produced as a "one-off" for an individual customer, nor "bundled" with computer hardware - started to develop in the late 1960s.


Unix (1970s–present)

Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
was an early operating system which became popular and very influential, and still exists today. The most popular variant of Unix today is
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
(previously called OS X and Mac OS X), while
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
is closely related to Unix.


The rise of Microcomputers

In January 1975,
Micro Instrumentation and Telemetry Systems Micro Instrumentation and Telemetry Systems (MITS) was an American electronics company founded in Albuquerque, New Mexico that began manufacturing electronic calculators in 1971 and personal computers in 1975. Ed Roberts and Forrest Mims founded ...
began selling its Altair 8800 microcomputer kit by mail order.
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
released its first product
Altair BASIC Altair BASIC is a discontinued interpreter for the BASIC programming language that ran on the MITS Altair 8800 and subsequent S-100 bus computers. It was Microsoft's first product (as Micro-Soft), distributed by MITS under a contract. Altair BASI ...
later that year, and hobbyists began developing programs to run on these kits.
Tiny BASIC Tiny BASIC is a family of Programming language#Dialects, flavors and implementations, dialects of the BASIC programming language that can fit into 4 or fewer kilobyte, KBs of random-access memory, memory. Tiny BASIC was designed in response to th ...
was published as a
type-in program A type-in program or type-in listing was computer source code printed in a home computer magazine or book. It was meant to be entered via the keyboard by the reader and then saved to cassette tape or floppy disk. The result was a usable game, ...
in '' Dr. Dobb's Journal'', and developed collaboratively. In 1976, Peter R. Jennings for instance created his ''
Microchess ''Microchess'', by Peter R Jennings, Peter R. Jennings, was the first commercially successful chess program for microcomputers. Originally designed for the MOS Technology KIM-1 it was released on December 18, 1976. ''Microchess'', as small as ...
'' program for
MOS Technology MOS Technology, Inc. ("MOS" being short for Metal Oxide Semiconductor), later known as CSG (Commodore Semiconductor Group) and GMT Microelectronics, was a semiconductor design and fabrication company based in Audubon, Pennsylvania. It is mo ...
's
KIM-1 The KIM-1, short for ''Keyboard Input Monitor'', is a small 6502-based single-board computer developed and produced by MOS Technology, Inc. and launched in 1976. It was very successful in that period, due to its low price (thanks to the inexp ...
kit, but since it did not come with a tape drive, he would send the source code in a little booklet to his mail-order customers, and they would have to type the whole program in by hand. In 1978, Kathe and Dan Spracklen released the source of their ''
Sargon (chess) ''Sargon'' (or ''SARGON'') is a line of chess-playing software for personal computers. The original ''SARGON'' from 1978 was written in assembly language by Dan and Kathleen "Kathe" Spracklen for the Z80-based Wavemate Jupiter III. History ' ...
'' program in a computer magazine. Jennings later switched to selling paper tape, and eventually compact cassettes with the program on it. It was an inconvenient and slow process to type in source code from a computer magazine, and a single mistyped or worse, misprinted character could render the
program Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Progra ...
inoperable, yet people still did so. (
Optical character recognition Optical character recognition or optical character reader (OCR) is the electronic or mechanical conversion of images of typed, handwritten or printed text into machine-encoded text, whether from a scanned document, a photo of a document, a scen ...
technology, which could theoretically have been used to scan in the listings rather than transcribe them by hand, was not yet in wide use.) Even with the spread of cartridges and cassette tapes in the 1980s for distribution of commercial software, free programs (such as simple educational programs for the purpose of teaching programming techniques) were still often printed, because it was cheaper than making and attaching cassette tapes to magazines. However, eventually a combination of four factors brought this practice of printing complete source code listings of entire programs in computer magazines to an end: * programs started to become very large * floppy discs started to be used for distributing software, and then came down in price * regular people started to use computers and wanted a simple way to run a program * computer magazines started to include cassette tapes or floppy discs with free or trial versions of software on them Very quickly, commercial software started to be
pirated Copyright infringement (at times referred to as piracy) is the use of works protected by copyright without permission for a usage where such permission is required, thereby infringing certain exclusive rights granted to the copyright holder, s ...
, and commercial software producers were very unhappy at this.
Bill Gates William Henry Gates III (born October 28, 1955) is an American business magnate and philanthropist. He is a co-founder of Microsoft, along with his late childhood friend Paul Allen. During his career at Microsoft, Gates held the positions ...
, cofounder of
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
, was an early moraliser against software piracy with his famous
Open Letter to Hobbyists Open or OPEN may refer to: Music * Open (band), Australian pop/rock band * The Open (band), English indie rock band * ''Open'' (Blues Image album), 1969 * ''Open'' (Gotthard album), 1999 * ''Open'' (Cowboy Junkies album), 2001 * ''Open'' ( ...
in 1976.


1980s–present

Before the microcomputer, a successful software program typically sold up to 1,000 units at $50,000–60,000 each. By the mid-1980s, personal computer software sold thousands of copies for $50–700 each. Companies like Microsoft,
MicroPro WordStar is a word processor application for microcomputers. It was published by MicroPro International and originally written for the CP/M-80 operating system, and later written also for MS-DOS and other 16-bit PC OSes. Rob Barnaby was the so ...
, and
Lotus Development Lotus Software (called Lotus Development Corporation before its acquisition by IBM) was an American software company based in Massachusetts; it was "offloaded" to India's HCL Technologies in 2018. Lotus is most commonly known for the Lotus 1- ...
had tens of millions of dollars in annual sales. They similarly dominated the European market with localized versions of already successful products. A pivotal moment in computing history was the publication in the 1980s of the specifications for the
IBM Personal Computer The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
published by IBM employee
Philip Don Estridge Philip Donald Estridge (June 23, 1937 – August 2, 1985), known as Don Estridge, was an American computer engineer who led development of the original IBM Personal Computer (PC), and thus is known as the "father of the IBM PC". His decisions dra ...
, which quickly led to the dominance of the PC in the worldwide desktop and later laptop markets a dominance which continues to this day. Microsoft, by successfully negotiating with IBM to develop the first
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
for the PC (
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
), profited enormously from the PC's success over the following decades, via the success of MS-DOS and its add-on-cum-successor,
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
. Winning the negotiation was a pivotal moment in Microsoft's history.


Free and open source software


Recent developments


App stores

Applications for mobile devices (cellphones and tablets) have been termed "apps" in recent years. Apple chose to funnel iPhone and
iPad The iPad is a brand of iOS and iPadOS-based tablet computers that are developed by Apple Inc. The iPad was conceived before the related iPhone but the iPhone was developed and released first. Speculation about the development, operating s ...
app sales through their
App Store An App Store (or app marketplace) is a type of digital distribution platform for computer software called applications, often in a mobile context. Apps provide a specific set of functions which, by definition, do not include the running of the co ...
, and thus both vet apps, and get a cut of every paid app sold. Apple does not allow apps which could be used to circumvent their app store (e.g. virtual machines such as the Java or Flash virtual machines). The Android platform, by contrast, has multiple app stores available for it, and users can generally select which to use (although
Google Play Google Play, also known as the Google Play Store and formerly the Android Market, is a digital distribution service operated and developed by Google. It serves as the official app store for certified devices running on the Android (operating sys ...
requires a compatible or rooted device). This move was replicated for desktop operating systems with
GNOME A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its characte ...
Software (for Linux), the
Mac App Store The App Store (also known as the Mac App Store) is a digital distribution platform for macOS apps, often referred to as Mac apps, created and maintained by Apple Inc. The platform was announced on October 20, 2010, at Apple's "Back to the Mac" ...
(for macOS), and the
Windows Store Microsoft Store (formerly known as Windows Store) is a digital distribution platform operated by Microsoft. It started as an app store for Windows 8 and Windows Server 2012 as the primary means of distributing Universal Windows Platform app ...
(for Windows). All of these platforms remain, as they have always been, non-exclusive: they allow applications to be installed from outside the app store, and indeed from other app stores. The explosive rise in popularity of apps, for the iPhone in particular but also for Android, led to a kind of "
gold rush A gold rush or gold fever is a discovery of gold—sometimes accompanied by other precious metals and rare-earth minerals—that brings an onrush of miners seeking their fortune. Major gold rushes took place in the 19th century in Australia, New Z ...
", with some hopeful programmers dedicating a significant amount of time to creating apps in the hope of striking it rich. As in real gold rushes, not all of these hopeful entrepreneurs were successful.


Formalization of software development

The development of curricula in
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
has resulted in improvements in software development. Components of these curricula include: #
Structured Structuring, also known as smurfing in banking jargon, is the practice of executing financial transactions such as making bank deposits in a specific pattern, calculated to avoid triggering financial institutions to file reports required by law ...
and
Object Oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
programming #
Data structures In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
#
Analysis of Algorithms In computer science, the analysis of algorithms is the process of finding the computational complexity of algorithms—the amount of time, storage, or other resources needed to execute them. Usually, this involves determining a function that re ...
#
Formal languages In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbol (formal), letters are taken from an alphabet (formal languages), alphabet and are well-formedness, well-formed ...
and
compiler construction In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily ...
#
Computer Graphics Algorithms A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as programs. These progra ...
#
Sorting Sorting refers to ordering data in an increasing or decreasing manner according to some linear relationship among the data items. # ordering: arranging items in a sequence ordered by some criterion; # categorizing: grouping items with similar pro ...
and Searching #
Numerical Methods Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of numerical methods th ...
,
Optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
and Statistics #
Artificial Intelligence Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
and
Machine Learning Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence. Machine ...


How software has affected hardware

As more and more programs enter the realm of firmware, and the hardware itself becomes smaller, cheaper and faster as predicted by
Moore's law Moore's law is the observation that the number of transistors in a dense integrated circuit (IC) doubles about every two years. Moore's law is an observation and projection of a historical trend. Rather than a law of physics, it is an empir ...
, an increasing number of types of functionality of computing first carried out by software, have joined the ranks of hardware, as for example with
graphics processing unit A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
s. (However, the change has sometimes gone the other way for cost or other reasons, as for example with
softmodem A software modem, commonly referred to as a softmodem, is a modem with minimal hardware that uses software running on the host computer, and the computer's resources (especially the central processing unit, random access memory, and sometimes ...
s and
microcode In processor design, microcode (μcode) is a technique that interposes a layer of computer organization between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. Microcode is a laye ...
.) Most hardware companies today have more software programmers on the payroll than hardware designers, since software tools have automated many tasks of
printed circuit board A printed circuit board (PCB; also printed wiring board or PWB) is a medium used in Electrical engineering, electrical and electronic engineering to connect electronic components to one another in a controlled manner. It takes the form of a L ...
(PCB) engineers.


Computer software and programming language timeline

The following tables include year by year development of many different aspects of computer software including: #
High level languages In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to use, ...
# #
Operating systems An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also inc ...
# #
Networking software A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ...
and applications # # Computer graphics hardware, algorithms and applications # #
Spreadsheets A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in ce ...
# #
Word processing A word is a basic element of language that carries an objective or practical meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consen ...
# # Computer aided designNarayan, K. Lalit (2008). ''Computer Aided Design and Manufacturin''g. Prentice Hall


1971–1974


1975–1978


1979–1982


1983–1986


1987–1990


1991–1994


1995–1998


1999–2002


2003–2006


2007–2010


2011–2014


See also

* Forensic software engineering *
History of computing hardware The history of computing hardware covers the developments from early simple devices to aid calculation to modern day computers. Before the 20th century, most calculations were done by humans. The first aids to computation were purely mechan ...
*
History of operating systems Computer operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the links needed to control and synchronize computer hardware. On the first computers, with no operating system, every p ...
*
History of software engineering The history of software engineering begins in the 1960s. Writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to it ...
*
List of failed and overbudget custom software projects This is a list of notable custom software projects which have significantly failed to achieve some or all of their objectives, either temporarily or permanently, and/or have suffered from significant cost overruns. For a list of ''successful'' maj ...
*
List of pioneers in computer science This is a list of people who made transformative breakthroughs in the creation, development and imagining of what computers could do. Pioneers : ''To arrange the list by date or person (ascending or descending), click that column's small "up-do ...
*
Women in computing Women in computing were among the first programmers in the early 20th century, and contributed substantially to the industry. As technology and practices altered, the role of women as programmers has changed, and the recorded history of the fiel ...
*
Timeline of women in computing This is a timeline of women in computing. It covers the time when women worked as "human computers" and then as programmers of physical computers. Eventually, women programmers went on to write software, develop Internet technologies and other ...


References


Sources

* * * * * *


External links

*{{Commons category-inline History of computer science History of computing